int get_gpu_max_threads()
{
    int deviceId;
    cudaGetDevice(&deviceId);  // 获取当前使用的GPU设备ID

    // 1. 查询 SM级最大线程数（单个block的线程数上限）
    int maxThreadsPerBlock;
    cudaDeviceGetAttribute(&maxThreadsPerBlock, cudaDevAttrMaxThreadsPerBlock, deviceId);

    // 2. 查询 SM数量
    int multiProcessorCount;
    cudaDeviceGetAttribute(&multiProcessorCount, cudaDevAttrMultiProcessorCount, deviceId);

    // 3. 计算设备级最大总线程数（理论值）
    int maxTotalThreads = multiProcessorCount * maxThreadsPerBlock;

    return maxTotalThreads;
}